using System;
using System.Collections.Generic;
using System.Text;
using MindFactorial.LaunchPoint.Runtime;

namespace MindFactorial.LaunchPoint.Console.Library
{
    /// <summary>
    /// Represents a pipeline for communicating with external entities hosted by the mre runtime
    /// </summary>
    public class PluginMessagingPipeline : ConsoleObject
    {
        //ConsolePlugIn _plugin;
        
        //internal event GenericConsoleMessagingHandler _broadcastEvent = null;
        IRootWindow _shell;
        internal PluginMessagingPipeline()
        {
            
        }

        internal PluginMessagingPipeline(IRootWindow shell)
        {
            this._shell = shell;
        }
      

        /// <summary>
        /// Broadcasts a message accross plugins and Runtime instance peers
        /// </summary>
        /// <param name="application">the application target</param>
        /// <param name="filter">a filter argument</param>
        /// <param name="message">the message being sent</param>
        public void BroadcastEvent(string application, string filter, string message)
        {       
            _shell.PipelineBroadcastEvent(application, filter, message);
        }

        


    }

    

    
}
